--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
tests/backend/test_plugin_rsg.py 8522a5fd9eee9dd0e2dd6a587fa55fe6a624a9ae (8522a5fd) Text, 1.79 KB
T8b949e# SPDX-License-Identifier: 0BSD
Tff7b72import T7ee787pytest
Tff7b72import T7ee787RNS
Tff7b72from T7ee787meshchatxT7ee787.T7ee787srcT7ee787.T7ee787backendT7ee787.T7ee787plugin_rsg Tff7b72import Tb4b4b4(
Te6edf3RSGErrorTb4b4b4,
Te6edf3create_rsgTb4b4b4,
Te6edf3validate_rsgTb4b4b4,
Te6edf3verify_rsg_payloadTb4b4b4,
Tb4b4b4)
Tff7b72from T7ee787meshchatxT7ee787.T7ee787srcT7ee787.T7ee787backendT7ee787.T7ee787plugin_trusted_publishers Tff7b72import Tb4b4b4(
Te6edf3add_user_trusted_publisherTb4b4b4,
Te6edf3list_trusted_publishersTb4b4b4,
Te6edf3lookup_trusted_publisher_in_storageTb4b4b4,
Tb4b4b4)
Tff7b72def Td2a8fftest_validate_rsg_roundtripTb4b4b4(Tb4b4b4)Tb4b4b4:
Te6edf3identity Tff7b72= Te6edf3RNSTff7b72.Td2a8ffIdentityTb4b4b4(Tb4b4b4)
Te6edf3message Tff7b72= Ta5d6ffbTa5d6ff"Ta5d6ffcanonical-plugin-payloadTa5d6ff"
Te6edf3rsg Tff7b72= Te6edf3create_rsgTb4b4b4(Te6edf3messageTb4b4b4, Te6edf3identityTb4b4b4)
Te6edf3signer Tff7b72= Te6edf3validate_rsgTb4b4b4(Te6edf3rsgTb4b4b4, Te6edf3messageTb4b4b4)
Tff7b72assert Te6edf3signer Tff7b72== Te6edf3identityTff7b72.Td2a8ffhashTff7b72.Td2a8ffhexTb4b4b4(Tb4b4b4)
Tff7b72def Td2a8fftest_validate_rsg_wrong_hashTb4b4b4(Tb4b4b4)Tb4b4b4:
Te6edf3identity Tff7b72= Te6edf3RNSTff7b72.Td2a8ffIdentityTb4b4b4(Tb4b4b4)
Te6edf3rsg Tff7b72= Te6edf3create_rsgTb4b4b4(Ta5d6ffbTa5d6ff"Ta5d6ffpayload-aTa5d6ff"Tb4b4b4, Te6edf3identityTb4b4b4)
Tff7b72with Te6edf3pytestTff7b72.Td2a8ffraisesTb4b4b4(Te6edf3RSGErrorTb4b4b4, Te6edf3matchTff7b72=Ta5d6ff"Ta5d6ffhashTa5d6ff"Tb4b4b4)Tb4b4b4:
Te6edf3validate_rsgTb4b4b4(Te6edf3rsgTb4b4b4, Ta5d6ffbTa5d6ff"Ta5d6ffpayload-bTa5d6ff"Tb4b4b4)
Tff7b72def Td2a8fftest_validate_rsg_truncatedTb4b4b4(Tb4b4b4)Tb4b4b4:
Tff7b72with Te6edf3pytestTff7b72.Td2a8ffraisesTb4b4b4(Te6edf3RSGErrorTb4b4b4, Te6edf3matchTff7b72=Ta5d6ff"Ta5d6fftoo shortTa5d6ff"Tb4b4b4)Tb4b4b4:
Te6edf3validate_rsgTb4b4b4(Ta5d6ffbTa5d6ff"Ta5d6ffshortTa5d6ff"Tb4b4b4, Ta5d6ffbTa5d6ff"Ta5d6ffpayloadTa5d6ff"Tb4b4b4)
Tff7b72def Td2a8fftest_verify_rsg_payload_and_trusted_lookupTb4b4b4(Te6edf3tmp_pathTb4b4b4)Tb4b4b4:
Te6edf3identity Tff7b72= Te6edf3RNSTff7b72.Td2a8ffIdentityTb4b4b4(Tb4b4b4)
Te6edf3message Tff7b72= Ta5d6ffbTa5d6ff"Ta5d6ffpayloadTa5d6ff"
Te6edf3rsg Tff7b72= Te6edf3create_rsgTb4b4b4(Te6edf3messageTb4b4b4, Te6edf3identityTb4b4b4)
Te6edf3info Tff7b72= Te6edf3verify_rsg_payloadTb4b4b4(Te6edf3rsgTb4b4b4, Te6edf3messageTb4b4b4)
Tff7b72assert Te6edf3infoTff7b72.Td2a8ffpresent Tff7b72is Tff7b72True
Tff7b72assert Te6edf3infoTff7b72.Td2a8ffvalid Tff7b72is Tff7b72True
Tff7b72assert Te6edf3infoTff7b72.Td2a8ffsigner Tff7b72== Te6edf3identityTff7b72.Td2a8ffhashTff7b72.Td2a8ffhexTb4b4b4(Tb4b4b4)
Te6edf3db Tff7b72= Te6edf3tmp_path Tff7b72/ Ta5d6ff"Ta5d6ffstate.dbTa5d6ff"
Te6edf3plugins_root Tff7b72= Te6edf3tmp_path Tff7b72/ Ta5d6ff"Ta5d6ffpluginsTa5d6ff"
Te6edf3plugins_rootTff7b72.Td2a8ffmkdirTb4b4b4(Tb4b4b4)
Te6edf3add_user_trusted_publisherTb4b4b4(
Tffa657strTb4b4b4(Te6edf3plugins_rootTb4b4b4)Tb4b4b4,
Tffa657strTb4b4b4(Te6edf3dbTb4b4b4)Tb4b4b4,
Te6edf3identityTff7b72.Td2a8ffhashTff7b72.Td2a8ffhexTb4b4b4(Tb4b4b4)Tb4b4b4,
Ta5d6ff"Ta5d6ffExample PublisherTa5d6ff"Tb4b4b4,
Tb4b4b4)
Te6edf3pubs Tff7b72= Te6edf3list_trusted_publishersTb4b4b4(Tffa657strTb4b4b4(Te6edf3plugins_rootTb4b4b4)Tb4b4b4, Tffa657strTb4b4b4(Te6edf3dbTb4b4b4)Tb4b4b4)
Tff7b72assert Tffa657anyTb4b4b4(Te6edf3pTb4b4b4[Ta5d6ff"Ta5d6ffidentityTa5d6ff"Tb4b4b4] Tff7b72== Te6edf3identityTff7b72.Td2a8ffhashTff7b72.Td2a8ffhexTb4b4b4(Tb4b4b4) Tff7b72for Te6edf3p Tff7b72in Te6edf3pubsTb4b4b4)
Te6edf3nameTb4b4b4, Te6edf3trusted Tff7b72= Te6edf3lookup_trusted_publisher_in_storageTb4b4b4(
Te6edf3identityTff7b72.Td2a8ffhashTff7b72.Td2a8ffhexTb4b4b4(Tb4b4b4)Tb4b4b4,
Tffa657strTb4b4b4(Te6edf3plugins_rootTb4b4b4)Tb4b4b4,
Tffa657strTb4b4b4(Te6edf3dbTb4b4b4)Tb4b4b4,
Tb4b4b4)
Tff7b72assert Te6edf3trusted Tff7b72is Tff7b72True
Tff7b72assert Te6edf3name Tff7b72== Ta5d6ff"Ta5d6ffExample PublisherTa5d6ff"
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────